<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Artistic Style - Install Information</title>
    <meta http-equiv="Content-Language" content="en-us" />
    <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
    <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="styles.css" rel="stylesheet" type="text/css" />
</head>

<body>

    <h1>Artistic Style Install Information
    </h1>

    <p>
        &nbsp;
    </p>

    <h3 id="Contents">
        Contents
    </h3>

    <p class="contents1">
        <a class="contents" href="#_Artistic_Style_Versions">Artistic Style Versions</a>
    </p>
    <p class="contents1">
        <a class="contents" href="#_Linux_Version">Linux Version</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_GCC_Compiler">GCC Compiler</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Other_Makefile_Options">Other Makefile Options</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Clang_Compiler">Clang Compiler</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Intel_Compiler">Intel Compiler</a>
    </p>
    <p class="contents1">
        <a class="contents" href="#_Mac_OS_X_Version">Mac OS X Version</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Xcode">Xcode</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Makefile">Makefile</a>
    </p>
    <p class="contents1">
        <a class="contents" href="#_Windows_Version">Windows Version</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Precompiled_Executable">Precompiled Executable</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Visual_C++_Compiler">Visual C++ Compiler</a>
    </p>
    <p class="contents2">
        <a class="contents" href="#_Other_Compilers">Other Compilers</a>
    </p>
    <p class="contents1">
        <a class="contents" href="#_Compiler_Options">Compiler Options</a>
    </p>

    <h3 id="_Artistic_Style_Versions">
        Artistic Style Versions
    </h3>

    <p>
        astyle_x.x_linux.tar.gz is the <b>Linux </b>version of Artistic Style. It contains the source code, documentation,
        and makefiles. The Linux Version compile instructions below give information for compiling the source code.
    </p>
    <p>
        astyle_x.x_macosx.tar.gz is the <b>Mac OS X </b>version of Artistic Style. It contains the source code, documentation,
        Xcode project files, and a makefile. The Mac OS X Version compile instructions below give information for compiling
        the source code.
    </p>
    <p>
        astyle_x.x_windows.zip is the <b>Windows </b>version of Artistic Style. It contains the source code, documentation,
        Visual C project files, and an executable. The Windows Version compile instructions below give information for
        compiling the source code.
    </p>
    <p>
        Only one platform is supported in each distribution package. If you use Artistic Style on more than one platform
        you will need to download packages for each platform. The main difference in platforms is the build directories
        and the line endings. Most compilers and development packages will accept any type of line ending. The source
        code and documentation are the same for all distributions.
    </p>

    <h3 id="_Linux_Version">
        Linux Version
    </h3>

    <h4 id="_GCC_Compiler">
        GCC Compiler
    </h4>

    <p>
        To compile using the GCC compiler you must have GCC (3.1 or better) installed.
    </p>
    <p>
        The build has no autoconf dependency. To build the Artistic Style configurations use the makefile located in the
        astyle/build/gcc directory. The executables will be in the astyle/build/gcc/bin directory. To build the command
        line configuration enter the following:
    </p>
    <pre>cd astyle/build/gcc<br />make
</pre>
    <p>
        To build the other astyle configurations you can enter the file name or a symbolic name. Entering "make astyle"
        or "make release" will build the command line configuration. Following are the symbolic names and file names (in
        parens) of the various configurations:
    </p>
    <ul>
        <li><b>release </b>builds the Artistic Style command line program (astyle). This is the default option.</li>
        <li><b>shared </b>builds the Artistic Style program as a shared library (libastyle.so).</li>
        <li><b>static </b>builds the Artistic Style program as a static library (libastyle.a).</li>
        <li><b>debug </b>builds the Artistic Style command line program with debugging information (astyled).</li>
        <li><b>shareddebug </b>builds the Artistic Style program as a shared library with debugging information (libastyled.so).
        </li>
        <li><b>staticdebug </b>builds the Artistic Style program as a static library with debugging information (libastyled.a).
        </li>
        <li><b>all </b>builds all the above configurations.
            <p>
                The following Java shared library builds are separate from the above. They include a Java Native Interface (JNI)
                and require that the Java Development Kit (JDK) be installed. The environment variable JAVA_HOME should be defined.
                It defines the install directory for the JDK. The makefile also has default install directories for Java 5 and
                6. If the compile cannot find the file jni.h, either set the variable or change the value in the makefile.
            </p>
        </li>
        <li><b>java </b>builds the Artistic Style program as a shared library which includes the JNI (libastylej.so).</li>
        <li><b>javadebug </b>builds the Artistic Style program as a shared library which includes the JNI and debugging information
            (libastylejd.so).</li>
        <li><span style="font-weight: bold;">javaall </span>builds all the above java configurations.</li>
    </ul>
    <p>
        More than one configuration can be built at the same time. For example, to build all the release configurations
        enter:
    </p>
    <pre>cd astyle/build/gcc<br />make release shared static</pre>

    <h4 id="_Other_Makefile_Options">
        Other Makefile Options
    </h4>

    <p>
        The following makefile options are available for GCC, Clang, Intel, and Mac.
    </p>
    <h5>clean
    </h5>
    <p>
        Removes the object and executable files for all configurations.
    </p>
    <p>
        To remove the files for all configurations:
    </p>
    <pre>make clean
</pre>
    <h5>cleanobj
    </h5>
    <p>
        Removes the object files for all configurations. The executables will not be removed.
    </p>
    <p>
        To remove only the object files for all configurations:
    </p>
    <pre>make cleanobj
</pre>
    <h5>install
    </h5>
    <p>
        Installs the
        astyle executable and documentation files. The default is /usr/bin for the executable and /usr/share/doc/astyle
        for the documentation. You must have the appropriate permissions to use install.
    </p>
    <p>
        To install the astyle to the default directories:
    </p>
    <pre>sudo make install
</pre>
    <p>
        To install astyle to a different bin directory set a value for the macro $(prefix). For example to install the
        executable to a user's home directory (/home/<i>user</i>/bin):
    </p>
    <pre>sudo make prefix=$HOME install
</pre>
    <h5>uninstall
    </h5>
    <p>
        Uninstalls the executable and documentation. You must have the appropriate permissions to use uninstall.
    </p>
    <p>
        To uninstall astyle from the default directories:
    </p>
    <pre>sudo make uninstall
</pre>
    <p>
        To uninstall the files from a different directory set a value for the macro $(prefix). For example to uninstall
        the files from a user's home directory (/home/<i>user</i>):
    </p>
    <pre> sudo make prefix=$HOME uninstall
</pre>
    <p>
        NOTE: The uninstall option will NOT remove the .astylerc files from the users home directories. The files must
        be removed individually for each user.
    </p>

    <h4 id="_Clang_Compiler">
        Clang Compiler
    </h4>

    <p>
        The Clang Compiler release 2.9.11 has a problem finding object files on
        some distributions (Ubuntu based). There is a script file, copyfiles.sh, that will copy three object files to
        the clang build directory so they can be linked. The directory may need to be modified for your distribution.
        Or, you may not need it at all. This problem has been fixed in version 3.0.
    </p>
    <p>
        Clang has a static analyzer that finds potential bugs in C/C++ and Objective-C programs. It can be run as a standalone
        tool from the command-line, and runs in tandem with a build. There is a script file, analyze.sh, that will run
        the analysis on Artistic Style.
    </p>
    <p>
        The build has no autoconf dependency. To build the Artistic Style configurations use the makefile located in the
        astyle/build/clang directory. The executables will be in the astyle/build/clang/bin directory. To build the command
        line configuration enter the following:
    </p>
    <pre>cd astyle/build/clang<br />make
</pre>
    <p>
        To build the other astyle configurations you can enter the file name or a symbolic name. The configurations for
        Clang are the same as for the <a href="#_GCC_Compiler">GCC compiler</a>. More than one configuration can be
        built at the same time. For example, to build all the release configurations enter:
    </p>
    <pre>cd astyle/build/clang<br />make release shared static
</pre>
    <p>
        The <a href="#_Other_Makefile_Options">Other Makefile Options</a> are the same as for the GCC compiler.
    </p>

    <h4 id="_Intel_Compiler">
        Intel Compiler
    </h4>

    <p>
        These procedures and the makefile are for recent versions of the compiler. They may not work for earlier versions.
        Instructions for your compiler are in the compiler documentation file "get_started_lc.htm".
    </p>
    <p>
        To compile the source there are environment variables that must be set by running the compiler environment script
        compilervars.sh (or compilervars.csh) with an argument that specifies the target architecture. If this has not
        been done already enter: "<strong>source &nbsp;&lt;install-dir&gt;/bin/compilervars.sh&nbsp;&lt;arg&gt;</strong>",
        where &lt;install-dir&gt; is the directory where the compiler is installed and &lt;arg&gt; is <strong>ia32 </strong>
        or <strong>intel64</strong>. If this is not done "make" will display an error message "*** The compiler environment
        variables are not set." On an Intel x64 platform installed in the default directory the instruction would be
    </p>
    <pre>source /opt/intel/bin/compilervars.sh intel64</pre>
    <p>
        The build has no autoconf dependency. To build the Artistic Style configurations use the makefile located in the
        astyle/build/intel directory. The output executables will be in the astyle/build/intel/bin directory. To build
        the command line configuration enter the following:
    </p>
    <pre>cd astyle/build/intel<br />make</pre>
    <p>
        To build the other astyle configurations you can enter the file name or a symbolic name. The configuration names
        for Intel are the same as for the <a href="#_GCC_Compiler">GCC compiler</a>. More than one configuration can be
        built at the same time. For example, to build the entire debug configurations enter:
    </p>
    <pre>cd astyle/build/intel<br />make debug shareddebug staticdebug</pre>
    <p>
        The <a href="#_Other_Makefile_Options">Other Makefile Options</a> are the same as for the GCC compiler.
    </p>

    <h3 id="_Mac_OS_X_Version">
        Mac OS X Version
    </h3>

    <h4 id="_Xcode">Xcode</h4>

    <p>
        Artistic Style workspace and project files for the Xcode development environment are available in the &quot;build/xcode&quot;
        directory. A workspace can be used to build a single project or all the projects. The project files have Debug
        and Release configurations. The following projects are available.
    </p>
    <ul>
        <li><b>AStyle</b> builds the Artistic Style command line program (astyle). </li>
        <li><b>AStyleA</b> builds the Artistic Style program as a Static Library (libastyle.a). This can be statically
            linked with an executable.</li>
        <li><b>AStyleDylib</b> builds the Artistic Style program as a Dynamic Library (libastyle.dylib). It can be used with C/C++, Objective
            C, C#, and Python programs.</li>
        <li><b>AStyleJava</b> builds the Artistic Style program as a Dynamic Library (libastylej.dylib) that can be called 
            from a Java program. The Java Development (JDK) is required for the project to compile. The Project Properties 
            must have an include path to the JDK include directory. The output dylib can also be called from a C++ or C# 
            program.</li>
    </ul>

    <h5>install</h5>
    <p>
        Only the astyle executable is installed. The library project installs are sent to UninstalledProjects in
        the Build directory. The following instructions are for the astyle executable and documentation files. The default
        install directory is /usr/bin for the executable and /usr/share/doc/astyle
        for the documentation. You must have the appropriate permissions to use install.
        If sudo is not used for the install an error will occur during the build.
    </p>
    <p>
        To install the astyle executable to the default directory:
    </p>
    <pre>cd astyle/build/xcode
sudo xcodebuild install -project AStyle.xcodeproj
</pre>
    <p>
        A script is used to install the documentation
        from the same directory.
    </p>
    <pre>sudo bash install.sh
</pre>
    <h5>uninstall
    </h5>
    <p>
        Uninstalls the executable and documentation. You must have the appropriate permissions to use uninstall.
    </p>
    <p>
        A script is used to uninstall astyle and the documentation:
    </p>
    <pre>sudo bash uninstall.sh
</pre>
    <p>
        NOTE: The uninstall option will NOT remove the .astylerc files from the users home directories. The files must
        be removed individually for each user.
    </p>

    <h4 id="_Makefile">Makefile</h4>

    <p>
        The Artistic Style makefile compile uses the OS X &quot;Command Line Tools&quot;. If you have Xcode 4.3 or newer
        the command line tools, such as &quot;make&quot;, are NOT installed by default. They must be downloaded and installed
        separately. Once everything is successfully installed you should see &quot;make&quot; and other command line developer
        tools in /usr/bin.
    </p>
    <p>
        The build has no autoconf dependency. To build the Artistic Style configurations use the makefile located in the
        astyle/build/mac directory. The executables will be in the astyle/build/mac/bin directory. To build the command
        line configuration enter the following:
    </p>
    <pre>cd astyle/build/mac<br />make
</pre>
    <p>
        To build the other astyle configurations you can enter the file name or a symbolic name. The configurations for
        Mac are the same as for the <a href="#_GCC_Compiler">Linux GCC compiler</a>. More than one configuration can be
        built at the same time. For example, to build all the release configurations enter:
    </p>
    <pre>cd astyle/build/mac<br />make release shared static
</pre>
    <p>
        The <a href="#_Other_Makefile_Options">Other Makefile Options</a> are the same as for the Linux GCC compiler.
    </p>

    <h3 id="_Windows_Version">
        Windows Version
    </h3>

    <h4 id="_Precompiled_Executable">
        Precompiled Executable
    </h4>

    <p>
        In addition to the source files, the Windows distribution package contains an Artistic Style Win32 executable
        (AStyle.exe). If you prefer to compile the executable yourself follow the following instructions.
    </p>

    <h4 id="_Visual_C++_Compiler">
        Visual C++ Compiler
    </h4>

    <p>
        There are configuration and project files for
        several versions of the Visual C compiler. Open the AStyle configuration
        file in the appropriate &quot;build&quot; directory. All project files have Debug, Release and Static configurations.
        Debug file output will be in the &quot;debug&quot; directory. Release file output will be in the &quot;bin&quot;
        directory. Static file output will be in the "binstatic" directory. The following solution files are available.
    </p>
    <ul>
        <li><b>All AStyle </b>builds the release and the debug configurations for all the following.</li>
        <li><b>AStyle </b>builds the Artistic Style command line program (AStyle.exe). This project has an extra "Static"
            option. It is the same as the "Release" build except that it is linked with a static runtime library. This is
            needed if the executable is to be run on a system without Visual Studio installed. The builds for this configuration
            are placed in a separate &quot;binstatic&quot; directory. </li>
        <li><b>AStyleDll </b>builds the Artistic Style program as a Dynamic Link Library (AStyle.dll). This will also build
            an exports library and a static library for linking the dll. </li>
        <li><b>AStyleJava </b>builds the Artistic Style program as a Dynamic Link Library (AStylej.dll) that can be called
            from a Java program. The Java Development (JDK) is required for the project to compile. The Project Properties
            must have an include path to the JDK include and include/win32 directories. This is set in &quot;Project &gt;
            Properties &gt; C/C++ &gt; General &gt; Additional&nbsp;Include&nbsp;Directories&quot;. The default setting is
            for the JDK to be installed in the default directory, but it may not be the most current release. The output DLL
            can also be called from a C++ or C# program.</li>
        <li><b>AStyleLib </b>builds the Artistic Style program as a Static Library (libAStyle.lib). This can be statically
            linked to a calling program.</li>
    </ul>

    <h4 id="_Other_Compilers">
        Other Compilers
    </h4>

    <p>
        To use other compilers a project file must be built using a development environment.
    </p>
    <ul>
        <li>Create a project using the compiler's development environment.</li>
        <li>Add to the project all the .cpp and .h files in the "src" directory.</li>
        <li>The Compiler Options section discusses the compiler options to use.</li>
        <li>Compile.</li>
    </ul>

    <h3 id="_Compiler_Options">
        Compiler Options
    </h3>

    <p>
        No macro definitions are required to compile the executable. To compile as a static or shared (dynamic) library
        define the macro ASTYLE_LIB. To compile a Java shared (dynamic) library define the macro ASTYLE_JNI. The 
        option ASTYLE_NO_EXPORTS is sometimes needed for static libraries to prevent compiler error and warning 
        messages. Use the appropriate compiler and linker options to compile the static or shared library. Add debug
        options to compile the debug versions.
    </p>
    <p>
        Artistic Style is a small program and it is best to optimize for speed. The debug configurations are not usually
        optimized. To optimize for speed in the release configurations use the macro NDEBUG to remove asserts. If
        necessary, use an option to activate the C++11 standards (--std=c++0x on GCC and MinGW). Use an
        option that allows inline function expansion. Runtime Type Information (RTTI) is NOT needed. Exceptions are not
        used. Use whole program optimization if your compiler supports it. There may be other options you can use depending
        on the compiler.
    </p>
    <p>
        &nbsp;
    </p>

    <center style="margin-left: -0.4in;">
        <a href="http://sourceforge.net/projects/astyle">
            <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=2319&type=16" alt="" />
        </a>
    </center>

    <p>
        &nbsp;
    </p>

    <!-- Piwik -->

    <script type="text/javascript">
        var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/astyle/" : "http://sourceforge.net/apps/piwik/astyle/");
        document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
    </script>

    <script type="text/javascript">
        try {
            var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
            piwikTracker.trackPageView();
            piwikTracker.enableLinkTracking();
        } catch (err) { }
    </script>

    <noscript>
        <p>
            <img src="http://sourceforge.net/apps/piwik/astyle/piwik.php?idsite=1" style="border: 0" alt="" />
        </p>
    </noscript>

    <!-- End Piwik Tag -->

</body>

</html>

